﻿#include <stdio.h>
int main()
//main函数有且仅有一个，即使一个项目中有多个.c文件，也只能有一个main函数
{
	int a, b, c;
	a = 10, b = 20;
	c = a * b;
	printf("c = %d\n",c);

	printf("%c\n",'a');
	printf("%c\n", 97);
	printf("%d\n", 'A');
	printf("%c\n", 'A'+32);// 表示'a'
	printf("%d\n", 'a');//表示'a'的ASCII码值
	printf("%d\n", '\n');//表示换行符'/n'的ASCII码值

	printf("\n");
	// 可打印字符展示：(基于ASCII码)
	int i = 0;
	for (i = 32; i <= 127; i++)
	{
		printf("%c ", i);
		if (i % 16 == 15)
			printf("\n");
	}
	printf("\n");

	/*对于字符串"abcdef"，我们实际上看到了6个字符：a, b, c, d, e, f，
	但是实际上在末尾还隐藏1个 \0 的转义字符， \0 是字符串的结束标志。*/
	char arr1[] = "abc"; //arr2数组中存放字符串
	char arr2[] = { 'a', 'b', 'c' };//arr1数组中存放3个字符，但在跑的时候会出问题
	char arr3[] = { 'a', 'b', 'c', '\0' };// '\0'的重要性
	printf("%s\n", arr1); printf("%s\n", arr2); printf("%s\n", arr3);
	/*我们可以看到，arr1字符数组在打印的时候打印了a 、b 、c后还打印了⼀些随机值，
	这就是因为 arr1 在末尾的地⽅没有 \0 字符作为结束标志，在打印的时候没有停⽌，
	而直到后面的某个位置出现 \0 时才能结束打印。
	但是arr1的打印就是完全正常的，就是因为arr1数组是使⽤字符串常量初始化的，
	数组中有 \0 作为结束标志，打印可以正常停⽌。*/
	printf("\n");

	//\t的宽度是8个字符
	printf("abcd\tef\n");
	printf("xxxxxxxxxxxxxxxxxxxxx\n");
	printf("abc\tdef\n");
	printf("\tabcdef\n");
	//在打印数据的时候，要求对齐，才会使用
	printf("\n");

	/* \ddd与\xdd2种转义字符可以理解为：字符的8进制或者16进制表⽰形式
	\ddd ：ddd表⽰1~3个八进制的数字。如：\130表⽰字符'X'
	\xdd ：dd表⽰2个⼗六进制数字。如：\x30表⽰字符'0' */
	printf("%c\n", '\130');//'X'
	printf("%c\n", '\x35');//'5'
	printf("%c\n", '\x77');//'w'
	return 0;
}